Create a new folder in drive.
  • 12 May 2026
  • 8 Minutes to read
  • Contributors
  • Dark
    Light

Create a new folder in drive.

  • Dark
    Light

Article summary

Post
/v3/projects/{project_id}/drive/folders

Creates a new folder at the root level or nested under an existing parent folder via parentFolderId. Returns 201 with a Location header pointing to the new folder's detail endpoint. Requires UpdateDrive permission.

Security
OAuth

All V3 endpoints require a Bearer token. Generate tokens in the Document360 portal under Settings > API Tokens. Tokens are project-scoped, require the customerApi scope, and do not expire by default. Tokens can be revoked at any time from the portal. Include the token in every request: Authorization: Bearer <your-token>. Alternatively, use the Authorize button below to sign in via OAuth2 Authorization Code flow with PKCE.

FlowAuthorization Code
Authorization URLhttps://identity.document360.net/connect/authorize
Token URLhttps://identity.document360.net/connect/token
Scopes:
customerApiDocument360 Customer API
Path parameters
project_id
string (uuid) Required

The unique identifier of the project. Retrieve project IDs from GET /v3/projects.

Example9a3b4c5d-6e7f-8a9b-0c1d-2e3f4a5b6c7d
Body parameters

Folder creation details.

Create a root-level folder

Creates a new folder at the root level of the Drive file manager.

{
  "name": "Product Screenshots",
  "parent_folder_id": null,
  "folder_color": "#4A90D9"
}
Create a nested folder

Creates a folder inside an existing parent folder.

{
  "name": "Release Notes",
  "parent_folder_id": "60a7b2c9e4b0f1a2b3c4d5e6",
  "folder_color": "#7B68EE"
}
object

Request to create a new folder in the Drive.

name
string Required

Display name for the new folder.

Min length1
ExampleRelease Notes
parent_folder_id
string | null

Unique identifier of the parent folder. Omit to create at the root level. Retrieve folder IDs from GET /v3/projects/{projectId}/drive/folders.

folder_color
string | null

Hex color code for the folder icon.

Example#4A90D9
Responses
201

Folder created successfully.

Headers
Location
string
URL of the newly created resource.
Folder created

Returns the newly created folder

{
  "data": {
    "id": "b4c5d6e7-2345-6789-abcd-ef0123456789",
    "title": "Release Notes",
    "parent_folder_id": "a1b2c3d4-5678-9abc-def0-1234567890ab",
    "sub_folders": [],
    "items_count": 0,
    "created_at": null,
    "updated_by": "[email protected]",
    "modified_at": "2025-10-01T09:00:00Z",
    "order": 3,
    "is_starred": false
  },
  "success": true,
  "request_id": "9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d",
  "errors": null,
  "warnings": null
}
Expand All
object

Generic API response wrapper containing typed data.

data
object

Response data payload.

id
string (uuid) | null

Unique identifier of the folder.

Example60a7b2c9e4b0f1a2b3c4d5e6
title
string | null

Display name of the folder.

ExampleProduct Screenshots
parent_folder_id
string | null

Unique identifier of the parent folder. Null if this is a root-level folder. Retrieve folder IDs from GET /v3/projects/{projectId}/drive/folders.

sub_folders
Array of object (FolderResponse) | null

List of immediate child folders nested under this folder.

object Recursive

Represents a folder in the Drive file manager.

items_count
integer (int32)

Total number of files contained in this folder.

created_at
string (date-time) | null

Date and time when this folder was created.

updated_by
string | null

User ID of the person who last modified this folder.

modified_at
string (date-time)

Date and time when this folder was last modified.

order
integer (int32)

Sort order position of this folder among its siblings.

is_starred
boolean

Whether this folder is marked as starred/favorited by the current user.

success
boolean

Whether the API request was successful.

request_id
string

Unique identifier for request tracing and correlation.

Min length1
errors
Array of object (ApiError) | null

List of errors if the request failed.

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

List of non-fatal warnings from the request.

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
400

The request body is malformed or contains invalid JSON.

Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
401

Authentication token is missing or invalid.

Headers
WWW-Authenticate
string
Indicates the authentication scheme required. Returns `Bearer` with optional `error` and `error_description` parameters per RFC 6750.
Missing or invalid token

Authentication token is missing or invalid.

{
  "type": "https://developer.document360.com/errors/unauthorized",
  "title": "Unauthorized.",
  "status": 401,
  "detail": "The authentication token is missing or has expired.",
  "instance": null,
  "trace_id": "req_abc123def456",
  "errors": [
    {
      "code": "UNAUTHORIZED",
      "message": "Bearer token is missing or invalid.",
      "field": null,
      "details": null
    }
  ],
  "warnings": null
}
Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
422

Validation failed.

Validation failed

The request body contains invalid data.

{
  "type": "https://developer.document360.com/errors/validation-error",
  "title": "Unprocessable Entity.",
  "status": 422,
  "detail": "One or more fields failed validation.",
  "instance": null,
  "trace_id": "req_abc123def456",
  "errors": [
    {
      "code": "VALIDATION_ERROR",
      "message": "This field is required.",
      "field": "title",
      "details": null
    }
  ],
  "warnings": null
}
Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
429

Rate limit exceeded. Retry after the duration specified in the Retry-After header.

Headers
Retry-After
integer
Number of seconds to wait before retrying the request. Use exponential backoff with jitter for optimal retry behavior.
X-RateLimit-Limit
integer
The maximum number of requests allowed in the current time window. Limits are applied per API token per project.
X-RateLimit-Remaining
integer
The number of requests remaining in the current time window. When this reaches 0, subsequent requests will receive a 429 response.
X-RateLimit-Reset
integer
The UTC epoch timestamp (in seconds) when the current rate limit window resets.
Rate limit exceeded

Rate limit exceeded.

{
  "type": "https://developer.document360.com/errors/too-many-requests",
  "title": "Too Many Requests.",
  "status": 429,
  "detail": "Rate limit exceeded. Retry after the duration specified in the Retry-After header.",
  "instance": null,
  "trace_id": "req_abc123def456",
  "errors": [
    {
      "code": "TOO_MANY_REQUESTS",
      "message": "Rate limit exceeded. Retry after the duration specified in the Retry-After header.",
      "field": null,
      "details": null
    }
  ],
  "warnings": null
}
Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
500

An unexpected server error occurred.

Unexpected server error

Unexpected server error.

{
  "type": "https://developer.document360.com/errors/internal-error",
  "title": "Internal Server Error.",
  "status": 500,
  "detail": "An unexpected error occurred. Please try again or contact support.",
  "instance": null,
  "trace_id": "req_abc123def456",
  "errors": [
    {
      "code": "INTERNAL_SERVER_ERROR",
      "message": "An unexpected error occurred.",
      "field": null,
      "details": null
    }
  ],
  "warnings": null
}
Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1

Was this article helpful?